#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
主题: 多行匹配模式
问题: 你正在试着使用正则表达式去匹配一大块的文本，而你需要跨越多行去匹配。
提示 :
"""

import re


def recipe1():
    comment = re.compile(r'/\*(.*?)\*/')
    text1 = '/* this is a comment */'
    text2 = '''/* this is a
    multiline comment */
    '''
    
    print(f"{text1 = }")
    print(f"{text2 = }")
    print(f"{comment.findall(text1) = }")
    print(f"{comment.findall(text2) = }")

    # 增加对换行的支持
    comment = re.compile(r'/\*((?:.|\n)*?)\*/') # 指定了一个非捕获组
    print(f"{comment.findall(text2) = }")

    # 正则表达式中的点(.)匹配包括换行符在内的任意字符, 复杂匹配时不推荐
    comment = re.compile(r'/\*(.*?)\*/', re.DOTALL)
    print(f"{comment.findall(text2) = }")


def main():
    print('recipe1'.center(20, '*'))
    recipe1()


if __name__ == '__main__':
    main()
